Method for improving peer to peer network communication

ABSTRACT

The present invention relates to a node for deployment on a peer to peer network. The node is programmed for monitoring the network to receive communication messages therefrom and to forward the communication messages, optionally changing the communications radius parameters to an optimal or near optimal value. The node can forward messages from one network to another or from one network to the same network. The invention also provides a method for monitoring communication messages for selected objects by nodes on a peer to peer network. The method includes interposing the node on the network. The node has at least one stored object corresponding to a communication message object stored the node; and monitors the network to detect communication messages matching at least one of the stored objects and decides whether or not to forward or change communication message radius parameters based on some defined programming or configuration.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.11/040,364 filed Jan. 21, 2005, now U.S. Pat. No. 7,583,682, entitledMethod for Improving Peer to Peer Network Communication, which is acontinuation of U.S. application Ser. No. 10/764,111, filed Jan. 23,2004, now U.S. Pat. No. 7,761,569 entitled Method for Monitoring andProviding Information Over a Peer to Peer Network.

The entire teachings of the above application(s) are incorporated hereinby reference.

FIELD OF THE INVENTION

The present invention provides a method for improving peer to peernetwork communications, and, in particular, to connecting one or morepeer to peer networks together and accepting communication messages froma node and providing the communication message to another node. Thepresent invention may also change communication message radiusparameters to increase the communication message radius of travel on thenetwork.

BACKGROUND OF THE INVENTION

As used herein, peer to peer networks which are the subject of thepresent invention comprise multiple nodes, each node typicallyconsisting both of file server and client, which can send and receivedata or “communication messages” to or from a node to which such isconnected.

In a peer to peer network, each node is connected to other nodes over acommunication medium, such as the internet, either directly or throughsome type of proxy. For example, when a search request is issued, suchoriginating node sends a search request to all of the nodes to which itis connected (see FIG. 1). These nodes search their list of availablefiles and if a match is found they send a response back with thelocation. However, a peer to peer proxy network typically consists of anode A which is connected to a node B and node B is connected to a nodeC (see FIG. 2). Node A is not directly connected to node C such that ifnode A issues a search request it will be forwarded to node B to searchits available files, and if a match is found it will send a responseback to node A. Node B will then forward node A's request to node C andnode C will search its available files and if a match is found it willsend a response back to node B. Node B will then forward this responseto node A. FIG. 3 depicts a non-proxy loop network wherein each node isdirectly connected to another.

Some peer to peer networks utilize a leaf node/main node proxy topology(see FIG. 4) where some nodes are classified as main nodes and theremaining nodes are classified as leaf nodes. Leaf nodes can onlyconnect to main nodes. Only main nodes can connect to other main nodes.When a leaf node issues a search request, it sends the request to themain node with which it is connected. The main node then forwards therequest to any other leaf nodes that are connected to it and also to anymain nodes to which it is connected. These main nodes forward therequest to any leaf node that are connected to them.

In peer to peer networks, communication messages are sent to the nodesto which they are connected and, in turn, each of those nodes sendcommunication messages to other nodes to which they are connected.

Multiple peer to peer networks exist, usually each having a preferredset of attributes. Users wishing to utilize one peer to peer network forits specific attributes must install specific software to access aspecific network. Often users wish to access multiple networks andtherefore have multiple software applications installed on theircomputer. When the user wishes to search a specific network, the usermust start the specific software application and initiate the search. Ifthe result is not satisfactory, the user must launch a secondapplication and search a second peer to peer network. Thus, it would beadvantageous if users could search one network using the softwareapplication of their choice and have their communication messages beforwarded to a second network automatically.

Referring to FIG. 9, a peer to peer network is depicted, but which isnormally quite large. Often these networks comprise hundreds ofthousands of nodes. To reduce the bandwidth required to operate suchnetworks, nodes have a community imposed transmission distance or“Radius” limitation. Communication messages contain communicationmessage radius parameters such as “hops” and time to live. Hops is avalue that normally starts at 0 and increments each time thecommunication is forwarded. Time to live is a value that normally startsat 5 and is decremented each time the communication is forwarded. Whenhops reaches a preset limit, often 5, or time to live reaches 0, thecommunication is dropped from the network. Often nodes have a “Max timeto live” setting. This value is typically set to 5. If a node receives acommunication message time to live, which is higher than its configuredmax time to live, the packet is either dropped or the communicationmessage time to live is dropped to the configured value in the max timeto live. This effectively enforces a community time to live value andlimits the number of nodes that would perceive communication messagefrom a transmitting node. It would be advantageous if the communicationmessage could travel some distance and then have its communicationmessage radius parameters changed to an optimal or near optimal value toincrease the distance the communication message could travel. Forinstance, a communication could travel 4 hops and then have its settingschanged back to 0.

Accordingly, it is an object of the present invention to provide amethod for improving peer to peer network communications. It is yetanother object of the present invention to connect two or more peer topeer networks together and accept communication messages from one andprovide it to another. It is yet another object of the present inventionto accept communication messages from a peer to peer network and changethe communication message radius parameters to an optimal or nearoptimal value and retransmit the communication message so that theradius or distance of the communication is extended.

SUMMARY OF THE INVENTION

Generally, the present invention provides a method for improving peer topeer network communications by utilizing at least one of the methods setforth below. The preferred method comprises:

-   -   For example, at least one improvement-node is placed into a peer        to peer network. An improvement-node (a) may optionally connect        a second time to the same or different peer to peer network; (b)        may accept communication messages from one network and        forwarding it to the same or another network, optionally setting        the communication message radius parameters to an optimal or        near optimal value. Additionally, the improvement-node may        accept communication messages from one network and compare it to        a set of definitions to make a decision to drop or forward the        communication message. It may optionally set the communication        message radius parameters to an optimal or near optimal value        and forward the communication message.

Thus, the present invention provides a method for connecting one or morepeer to peer networks together and accepting communication messages fromone and providing it to another. The invention does not require that allcommunication messages be forwarded or that the improvement-node connectto multiple networks. In one such embodiment, the improvement-node onlyforwards search and search response communication messages while notforwarding other communication messages. In another embodiment, theimprovement-node connects to the same network and accepts communicationmessages, changes the communication messages radius parameters to anoptimal or near optimal value and resends it on the same network. Inanother embodiment, the improvement-node accepts all communicationmessages and forwards all communication messages. In another embodiment,the improvement-node accepts communication messages from one network anduses preconfigured information to decide if it should forward it on toanother network. In yet another embodiment, the improvement-node acceptscommunication messages from a node on a network and issues newcommunication messages containing the same information onto the samenetwork or different network on behalf of the original node.

In all of the embodiments, the improvement-node is configured to haveone or more of the features set forth below. These features are employedin the method for improving peer to peer network communication toprovide enhanced capabilities compared to the network nodes in theparticular network being addressed. Thus, not all of the capabilitiesneed to be programmed into each improvement-node in order to accept andforward communication messages. The presently preferred configurationsinclude:

-   -   The improvement-node is configured to connect the same network        multiple times.    -   The improvement-node is configured to connect to multiple        networks.    -   The improvement-node is configured to connect to multiple        networks multiple times.    -   The improvement-node is configured to accept communication        messages from one network and forward it to another.    -   The improvement-node is configured to accept communication        messages from one network, changes communication message radius        parameters, and resends the communication message on another        network.    -   The improvement-node is configured to accept communication        messages from one network, change the communication message        radius parameters, and resends the communication message on the        same network.    -   The improvement-node is configured to make a decision to forward        a communication message based on preprogrammed configuration.    -   The improvement-node is configured to make a decision to change        communication message radius parameters based on a preprogrammed        configuration.    -   The improvement-node is configured to accept communication        messages from one node, create new communication messages with        the same information except changing the identification        information to that of its own, forward the new communication        messages on to the same or different network, receive responses        to said new communication messages and forwarding response of        new communication messages to the original node.    -   The improvement-node is configured to speak multiple protocols.    -   The improvement-node is configured to bridge together multiple        networks.    -   The improvement-node is configured to route one network to        another.    -   The improvement-node is configured to repeat a communication        message to extend its distance of travel.

Other advantages of the present invention will become apparent from aperusal of the following detailed description of presently preferredembodiments of the invention taken in connection with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing will be apparent from the following more particulardescription of example embodiments of the invention, as illustrated inthe accompanying drawings in which like reference characters refer tothe same parts throughout the different views. The drawings are notnecessarily to scale, emphasis instead being placed upon illustratingembodiments of the present invention.

FIG. 1 is a simplified schematic of a two node peer to peer network;

FIG. 2 is a simplified schematic of a peer to peer proxy network;

FIG. 3 is a simplified schematic view of a peer to peer, non-proxy, andloop network;

FIG. 4 is a simplified schematic of a peer to peer leaf/main nodenetwork;

FIG. 5 is a flowchart representation of the programming or configuringan improvement-node to connect two networks together;

FIG. 6 is a flowchart representation of the programming or configuringan improvement-node to change the communication message radiusparameters to an optimal or near optimal value;

FIG. 7 is a simplified schematic of two peer to peer networks beingconnected together via an improvement-node;

FIG. 8 is a simplified schematic of an improvement-node being used toreset communication message radius parameters;

FIG. 9 is a simplified schematic of a large peer to peer network.

DETAILED DESCRIPTION OF THE INVENTION

A description of example embodiments of the invention follows.

With reference to FIGS. 7 and 8, the preferred methods of the presentinvention advantageously utilize at least one improvement-node. Theimprovement-node has certain preferred attributes and these attributesare configured for the specific type of communications improvementdesired by the user.

In one preferred embodiment of the present invention, animprovement-node comprises both a hardware system such as a computer,thin appliance, ASIC based device or other similar device, which can beprogrammed with specific logic or programming code (i.e., software). Inthe preferred embodiments, the device preferably has a capability ofbeing connected with a physical network either directly or through theuse of gateway. The programming logic provides the device with thecapability to transmit and receive on both physical networks as well asthe peer-to-peer networks, which typically ride on top of the physicalnetwork. In the preferred embodiment of the invention, programming logicis a software program, but may also be hard coded non-changeableprocedural information such as typically found in a ASIC based device.

Referring generally to FIG. 5, a flow chart discloses one method for theprogramming logic that configures a device acting as improvement-node toattached to two peer networks. This improvement-node acceptscommunication messages from nodes participating on one network andforwards them onto another network.

Referring generally to FIG. 6, a flow chart discloses one method for theprogramming logic that configures a device acting as a improvement-nodeto attach to the same peer-to-peer network twice. This improvement-nodeaccepts communication messages from nodes participating on the network,changes the communication message radius parameters and forwards thecommunication messages onto the same network.

It may be advantageous to prevent transmission of communications fromone network to the other, for instance, if the operator of theimprovement-node was trying to prevent copyright infringement requestsfrom transversing the networks. In this case, the programming logic canbe configured to receive communication messages and compare them tocriteria and to then perform some event whether or not a match is found.The programming logic may elect to drop the communication message andnot pass it on to other networks. This election can be automaticdepending on trigger points such as load or it can be configured to doso by the user of the programming logic.

The method for comparing may include inter-string, complete string,partial string, fuzzy logic, patricia-tree, or any other method thatcould be used to compare the likeness of two or more strings or portionsof two or more strings. String comparison can occur in parallel withother searches to increase through-put or they can be compared serially(meaning one after another). If a match is made, the programming logiccan drop the communication message if it is programmed to do so.

In one such embodiment, the improvement-node only forwards search andsearch response communication message while not forwarding othercommunication messages. In this embodiment, the improvement-node wouldaccept the communication message, it decides if it is a search orresponse to a search, and then forward on or drop the communicationmessage based on its findings. In another embodiment, theimprovement-node is functioning as a “repeater” so the communicationmessage can travel further on the network than it normally would. Inthis case, the improvement-node would accept the communication messagefrom a node or network and set the communication message radiusparameters to an optimal or near optimal value and retransmit thecommunication message.

In another embodiment, the improvement-node accepts all communicationmessages and forwards all communication messages. In this embodiment,the improvement-node would accept all communication messages from onenetwork and forward it to another network.

In another embodiment, the improvement-node accepts communicationmessages from a node and makes a request onto the same network or adifferent network on behalf of the node. This would be used for cachingenvironment or in an environment where the original node wish to hideits identity. The node would issue a communication message, which theimprovement-node would accept. The improvement-node would replaceoriginal communication message with one of its own, making it appear asthough it is sending the communication message for the benefit ofitself. The improvement-node would maintain a table of nodecommunication messages to “on behalf of” communication messages. Ascommunication messages or services were returned to theimprovement-node, the improvement-node would look in this table for acorrelation. It would then forward the communication messages orservices to the original node.

EXAMPLES

The following examples illustrate various embodiments to the methodsaccording to the present invention.

Example 1

Referring to FIG. 7, this example illustrates a method for connectingtwo networks together, accepting communication messages from one, andforwarding to another.

In this example, nodes A, B, and C are on a first network and nodes E,F, and G are on a second network. Each network is unable to communicatewith each other because they speak different protocols. Node D is animprovement node and is part of both networks and speak both protocols.Node A searches for a file named “A” and sends the search request tonodes B and C. Nodes B and C accept this search request. Node C forwardsthe search request to node D. Node D accepts the search request andforwards it to node E. Node E accepts the search request and forwards itto nodes F and G. Nodes F and G accept the search request. All nodesprocess the search request. Node G finds that it has the file and sendsa response to node E. Node E forwards this response to node D. Node Dforwards this response to node C. Node C forwards this response to nodeA. Node A receives the response from node G, which is on anothernetwork.

Example 2

Referring to FIG. 8, this example illustrates the method for acceptingcommunication messages from nodes participating on a single network,changing the communication message radius parameters, and forwarding thecommunication messages onto the same network.

In this example, all nodes are on one network and node C is animprovement-node and is configured to accept any communication messages,change the communication message radius parameters to an optimal or nearoptimal value and retransmit the communication messages.

Node A is configured to send a search request no further than three hopsaway from where it is connected into the network. It sends a search tonode B. Node B accepts the search and increments its hop value to 1 andforwards to node C. Node C accepts the search and resets the hop valueto 0 and forwards the search to node D. Node D accepts the search andincrements its hop value to 1 and forwards the search to node E. Node Ereceives the search and increments its hop value to 2 and forwards thesearch to node F. Node F accepts the search. All nodes process thesearch request. Node F finds it has the file and generates a responseand increments the hop value to 1 and forwards this response to node D.Node D accepts the response and increments the hop value to 2 andforwards the response to node C. Node C accepts the response and changesthe hop value to 0. Node C forwards the response to node B. Node Baccepts the response and increments the hop value to 1 and then forwardsthe response to node A. Node A accepts the response. Then end result isthat even though node F was 5 hops away, it was still able tocommunicate with node A.

Example 3

Referring to FIG. 7, example 3 illustrates the method for connecting twonetworks together, accepting communication messages from one, comparingto a list of criteria and dropping the communication message if itmatches or forwarding it if it doesn't. In this example nodes, A, B, andC are on a first network and nodes E, F, and G are on a second network.Each network is unable to communicate with each other because they usedifferent protocols. Node D is an improvement-node and is part of bothnetworks and can operate with both protocols. Node D is configured todrop searches for “madonna.txt”. Node A searches for file name“madonna.txt” and sends this search request to nodes B and C. Nodes Band C accept the search request. Node C forwards the search request tonode D. Since node D is configured to drop searches that match“madonna.txt” and because node A searches for “madonna.txt” node D dropsthe search.

Node A then searches for a file named “A” and sends this search requestto nodes B and C. Nodes B and C accept the search request. Node Cforwards the search request to node D. Since node D is configured todrop searches for “madonna.txt” and because node A searched for “A,”node D forwards the search request to node E. Node E accepts the searchrequest and forwards it to nodes F and G. Nodes F and G accept thesearch request. All nodes process the search request. Node G finds thatit has the file and sends a response to node E. Node E forwards theresponse to node D. Node D forwards this response to node C. Node Cforwards this response to node A. Node A receives the response from nodeG which is on another network.

Example 4

Again, referring to FIG. 7, example 4 illustrates a method forconnecting two networks together, accepting communication messages fromone, and forwarding not only searches and search responses and nothingelse to another network.

In this example, nodes A, B, and C are on a first network and nodes E,F, and G are on a second network. Each network is unable to communicatewith each other because they use different protocols. Node D is animprovement-node and is part of both networks and communicates with bothprotocols. Node A searches for file name “A” and sends this searchrequest to nodes B and C. Nodes B and C accept this search request. NodeC forwards the search request to node D. Node D accepts this searchrequest and forwards it to node E. Node E accepts this search requestand forwards it to node F and G. Nodes F and G accept the searchrequest. All nodes process the search request. Node G finds that it hasthe file and sends a response to node E. Node E forwards the response tonode D. Node D forwards this response to node C. Node C forwards thisresponse to node A. Node A receives the response from node G which is onanother network.

Node A then sends a ping request to nodes B and C. Node B receives therequest and responds. Node C receives the request and responds. Node Cforwards the ping request to node D. Because node D is configured toonly forward search requests and responses, it accepts the ping andresponds, but it does not forward the ping.

Example 5

Referring to FIG. 7, example 5 illustrates the method for acceptingcommunications from a node on a first network and forwarding thecommunications on to a second network while making it appear that theoriginal communications came from the improvement-node when, in fact, itdid not. For this example, refer to FIG. 7.

In this example, node D is the improvement-node. Node C wishes to locatethe file name “X” and sends the search request to node D. Node D acceptsthe search request and creates a new request with the same search terms,but with its own address information. Node D stores this request in atable so that it knows that if any requests are received, it shouldforward them to a node C. Node D forwards this request to node E. Node Eaccepts the search request and finds it has a match. Node E generates aresponse with node D's address information and forwards the response tonode D.

Node D accepts the response and looks in it's tables and finds that thisresponse was meant for node C so it forwards this response to node C.

While presently preferred embodiments of the invention have been shownand described, the invention may be otherwise embodied within the scopeof the appended claims.

What is claimed is:
 1. A method of operating a peer to peer network nodein a peer to peer network, the method comprising: accepting a firstcommunication message from a first node in the peer to peer networkhaving a communication radius parameter indicating a maximum distance amessage can travel in the peer to peer network, the first messageincluding information therein; creating a second communication message,the second communication message including the information from thefirst communication message; setting the communication radius parameterof the second communication message to a value so that the informationin the second communication message, that was originally in the firstcommunication message, travels a distance that exceeds the communicationradius parameter; forwarding the second communication message, includingthe information, to one or more other nodes in the peer to peer network,wherein the information travels a distance in the peer to peer networkthat exceeds the communication radius parameter; and forwarding aresponse to the first node.
 2. A method of operating a peer to peernetwork node, the method comprising: accepting communication messagesfrom a first peer to peer network, the accepted communication messagesincluding information and identification information, wherein theaccepted communication messages are each associated with a radiusparameter indicating a maximum number of hops the accepted communicationmessages are allowed to travel in the peer to peer network; creating newcommunication messages with the information from the acceptedcommunication messages and replacing the identification information withnew identification information; setting the communication radiusparameter of the new communication messages to a value so that anexpiration of the communication message radius parameter of the acceptedmessages does not occur when the information has traveled a distanceequal to the maximum number of hops in the peer to peer network;forwarding the new communication messages onto a second peer to peernetwork; and forwarding a responses of the new communication messages toan original node of the first network.
 3. The method of claim 2 whereinthe peer to peer network node hides the identity of the original node.4. A method of operating a peer to peer network node in a peer to peernetwork, the method comprising: accepting a communication message havinga communication radius parameter indicating a maximum distance thecommunication message is allowed to travel in the peer to peer network;resetting the communication message radius parameter of thecommunication message to a value so that information in thecommunication message travels a distance that exceeds the maximumdistance indicated as the communication radius parameter and so thatthere is no expiration of the communication message radius parameter ofthe communication message; and forwarding the communication message. 5.A method of operating a peer to peer network node, the methodcomprising: connecting to a first peer to peer network and to a secondnetwork; and accepting a communication message from one network andforwarding it onto another network having a communication radiusparameter indicating a maximum distance value the communication messagecan travel in the peer to peer network; setting the communication radiusparameter of the communication message to a new value; forwarding thecommunication message to nodes in the peer to peer network, thecommunication message traveling a distance that exceeds thecommunication parameter, since the communication radius parameter wasset to the new value.
 6. A method of operating a peer to peer networknode in a peer to peer network, the method comprising: monitoring thepeer to peer network for communication messages reaching an expirationof a communication message radius parameter indicating maximum distancethe communication messages can travel in the peer to peer network; andprior to the communication messages reaching the expiration of thecommunication message radius parameter, resetting the communicationmessage radius parameter of the communication message to a value so thatthe distance the communication message travels in the peer to peernetwork exceeds the communication message radius parameter.